8233
10359
Quiero eliminar una rama tanto de forma local como remota.
Intentos fallidos de eliminar una rama remota
$ git branch -d remotes / origin / bugfix
error: no se encontró la rama 'remotos / origen / corrección de errores'.
$ git branch -d origen / corrección de errores
error: no se encontró la rama 'origen / corrección de errores'.
$ git branch -rd origen / corrección de errores
Origen de rama remota eliminado / corrección de errores (era 2a14ef7).
$ git push
Todo actualizado
$ git pull
De github.com:gituser/gitproject
* [nueva rama] corrección de errores -> origen / corrección de errores
Ya está actualizado.
¿Qué debo hacer de manera diferente para eliminar con éxito la rama remotos / origin / bugfix tanto local como remotamente? 
1
2
Siguiente
Resumen Ejecutivo
$ git push -d  
$ git branch -d 
Tenga en cuenta que en la mayoría de los casos el nombre remoto es origen.
En tal caso, tendrá que usar el comando así.
$ git push -d origin 
Eliminar sucursal local
Para eliminar la sucursal local, use uno de los siguientes:
$ git branch -d branch_name
$ git branch -D branch_name
Nota: La opción -d es un alias para --delete, que solo elimina la rama si ya se ha fusionado por completo en su rama ascendente. También puede usar -D, que es un alias para --delete --force, que elimina la rama "independientemente de su estado combinado". [Fuente: man git-branch]
También tenga en cuenta que git branch -d branch_name fallará si está actualmente
en la rama que desea eliminar. El mensaje comienza con
error: No se puede eliminar la rama 'branch_name'. Si es así, primero cambie
a alguna otra rama, por ejemplo: git checkout master.
Eliminar rama remota [actualizado el 8 de septiembre de 2017]
A partir de Git v1.7.0, puede eliminar una rama remota usando
$ git push  --delete 
que podría ser más fácil de recordar que
$ git push : 
que se agregó en Git v1.5.0 "para eliminar una rama remota o una etiqueta".
A partir de Git v2.8.0, también puede usar git push con la opción -d como alias para --delete.
Por lo tanto, la versión de Git que haya instalado dictará si necesita usar la sintaxis más fácil o más difícil.
Eliminar rama remota [Respuesta original del 5 de enero de 2010]
Del Capítulo 3 de Pro Git de Scott Chacon:
Eliminar ramas remotas
Suponga que ha terminado con una rama remota; digamos, usted y sus colaboradores han terminado con una función y la han fusionado en la rama maestra de su control remoto (o en cualquier rama en la que se encuentre su línea de código estable). Puede eliminar una rama remota usando la sintaxis bastante obtusa git push [remotename]: [branch]. Si desea eliminar su rama de arreglo de servidor del servidor, ejecute lo siguiente:
$ git push origin: serverfix
Para git@github.com: schacon / simplegit.git
- [eliminado] serverfix
Auge. No más ramas en su servidor. Es posible que desee seguir esta página, porque necesitará ese comando y es probable que olvide la sintaxis. Una forma de recordar este comando es recordando la sintaxis de git push [remotename] [localbranch]: [remotebranch] que revisamos un poco antes. Si dejas fuera de la parte [sucursal local], básicamente estás diciendo: "No tomes nada de mi lado y haz que sea [sucursal remota]".
Publiqué git push origin: bugfix y funcionó a la perfección. Scott Chacon tenía razón: querré escuchar esa página (o prácticamente la oreja de perro respondiendo esto en Stack Overflow).
Entonces deberías ejecutar esto en otras máquinas
# Obtenga cambios de todos los controles remotos y elimínelos localmente
# ramas / etiquetas remotas eliminadas, etc.
# --prune hará el trabajo: -;
git fetch --todos --prune
para propagar cambios.
|
La respuesta de Matthew es excelente para eliminar ramas remotas y también aprecio la explicación, pero para hacer una distinción simple entre los dos comandos:
Para eliminar una rama local de su máquina:
git branch -d {the_local_branch} (use -D en su lugar para forzar la eliminación de la rama sin verificar el estado combinado)
Para eliminar una rama remota del servidor:
git push origin --delete {the_remote_branch}
Referencia: Git: Eliminar una rama (local o remota)
|
Las respuestas cortas
Si desea explicaciones más detalladas de los siguientes comandos, consulte las respuestas largas en la siguiente sección.
Eliminar una rama remota
git push origin --delete  # Git versión 1.7.0 o más reciente
git push origin -d  # Versión más corta (Git 1.7.0 o más reciente)
git push origin:  # versiones de Git anteriores a la 1.7.0
Eliminar una sucursal local
git branch --delete 
git branch -d  # Versión más corta
git branch -D  # Forzar-eliminar ramas no fusionadas
Eliminar una rama de seguimiento remoto local
git branch --delete --remotes  / 
git branch -dr  /  # Más corto
git fetch  --prune # Elimina múltiples ramas obsoletas de seguimiento remoto
git fetch  -p # Más corto
La respuesta larga: ¡hay tres ramas diferentes para eliminar!
Cuando se trata de eliminar ramas tanto de forma local como remota, tenga en cuenta que hay tres ramas diferentes involucradas:
La sucursal local X.
La rama de origen remoto X.
El origen de la rama de seguimiento remoto local / X que rastrea la rama remota X.
El cartel original utilizado:
git branch -rd origen / corrección de errores
Lo que solo eliminó el origen / corrección de errores de la rama de seguimiento remoto local, y no la corrección de errores de la rama remota real en el origen.
Para eliminar esa rama remota real, necesita
git push origin --delete corrección de errores
Detalles adicionales
Las siguientes secciones describen detalles adicionales a tener en cuenta al eliminar sus ramas remotas y de seguimiento remoto.
Presionar para eliminar ramas remotas también elimina las ramas de seguimiento remoto
Tenga en cuenta que eliminar la rama remota X de la línea de comandoel uso de un git push también eliminará el origen / X de la rama de seguimiento remoto local, por lo que no es necesario podar la rama de seguimiento remoto obsoleta con git fetch --prune o git fetch -p. Sin embargo, no estaría de más si lo hicieras de todos modos.
Puede verificar que el origen de la rama de seguimiento remoto / X también se eliminó ejecutando lo siguiente:
# Ver solo las ramas de seguimiento remoto
git branch - controles remotos
git branch -r
# Ver ramas de seguimiento tanto estrictamente locales como remotas
git branch --todos
git branch -a
Poda del origen de rama de seguimiento remoto local obsoleto / X
Si no eliminó su rama remota X de la línea de comando (como arriba), entonces su repositorio local todavía contendrá (ahora obsoleto) origen de rama de seguimiento remoto / X. Esto puede suceder si eliminó una rama remota directamente a través de la interfaz web de GitHub, por ejemplo.
Una forma típica de eliminar estas ramas obsoletas de seguimiento remoto (desde la versión 1.6.6 de Git) es simplemente ejecutar git fetch con --prune o más corto -p. Tenga en cuenta que esto elimina todas las ramas de seguimiento remoto locales obsoletas para las ramas remotas que ya no existen en el control remoto:
origen de git fetch --prune
git fetch origin -p # Más corto
Aquí está la cita relevante de las notas de la versión 1.6.6 (el énfasis es mío):
"git fetch" aprendió --todas y --múltiples opciones, para ejecutar fetch desde
muchos repositorios y la opción --prune para eliminar el seguimiento remoto
ramas que se pusieron rancias. Estos hacen "git actualización remota" y "git
poda remota "menos necesaria (no hay ningún plan para eliminar"
actualizar "ni" poda remota ", aunque).
Alternativa a la poda automática anterior para ramas obsoletas de seguimiento remoto
Alternativamente, en lugar de podar sus ramas de seguimiento remoto locales obsoletas a través de git fetch -p, puede evitar realizar la operación de red adicional simplemente eliminando manualmente las ramas con los indicadores --remote o -r:
git branch --delete --remotes origin / X
git branch -dr origin / X # Más corto
Ver también
git-branch (1) Página del manual.
git-fetch (1) Página del manual.
Pro Git § 3.5 Ramificación de Git: sucursales remotas.
|
Pasos para eliminar una rama:
Para eliminar la rama remota:
git push origin --delete 
Para eliminar la sucursal local, tiene tres formas:
1: git branch -D 
2: git branch --delete --force  # Igual que -D
3: git branch --delete  # Error al separar
Explique: OK, ¡solo explique lo que está pasando aquí!
Simplemente haga git push origin --delete para eliminar solo su rama remota, agregue el nombre de la rama al final y esto lo eliminará y lo enviará a remoto al mismo tiempo ...
Además, git branch -D, ¡que simplemente elimina solo la rama local! ...
-D significa --delete --force que eliminará la rama incluso si no está fusionada (forzar eliminación), pero también puede usar -d que significa --delete, que arroja un error correspondiente al estado de fusión de la rama ...
También creo la imagen a continuación para mostrar los pasos:
|
También puede utilizar lo siguiente para eliminar la rama remota
git push - eliminar servidor de origen corrección
Que hace lo mismo que
origen de git push: serverfix
pero puede que sea más fácil de recordar.
|
Consejo: cuando elimine ramas usando
git branch -d  # Elimina la rama local
o
git push origin:  # Elimina la rama remota
solo se eliminan las referencias. A pesar de que la rama se elimina realmente en el control remoto, las referencias a ella aún existen en los repositorios locales de los miembros de su equipo. Esto significa que para otros miembros del equipo, las ramas eliminadas aún son visibles cuando hacen una rama de git -a.
Para resolver esto, los miembros de su equipo pueden podar las ramas eliminadas con
git remote prune 
Este suele ser el origen de la ciruela remota git.
|
Si desea eliminar una sucursal, primero realice el pago en la sucursal que no sea la sucursal que se eliminará.
git checkout other_than_branch_to_be_deleted
Eliminando la sucursal local:
git branch -D branch_to_be_deleted
Eliminando la rama remota:
git push origin --delete branch_to_be_deleted
|
git branch -D 
git branch -D -r origen / 
origen de git push: 
|
Esto es simple: simplemente ejecute el siguiente comando:
Para eliminar una rama de Git tanto de forma local como remota, primero elimine la rama local con este comando:
ejemplo de git branch -d
(Aquí el ejemplo es el nombre de la rama).
Y después de eso, elimine la rama remota usando este comando:
origen de git push: ejemplo
|
Es muy simple:
Para eliminar la rama remota
git push -d origin 
O
origen de git push: 
Para eliminar a la fuerza la rama local
git branch -D 
|
Otro enfoque es:
git push - origen de ciruela
ADVERTENCIA: Esto eliminará todas las ramas remotas que no existan localmente. O de manera más completa,
git push - espejo
hará que el repositorio remoto se vea como la copia local del repositorio (los encabezados locales, los controles remotos y las etiquetas se reflejan en el remoto).
|
Utilizo lo siguiente en mi configuración de Bash:
alias git-shoot = "git pushorigen - eliminar "
Entonces puedes llamar:
nombre de rama de git-shoot
|
Eliminar localmente:
Para eliminar una sucursal local, puede usar:
git branch -d 
Para eliminar una rama a la fuerza, use -D en lugar de -d.
git branch -D 
Eliminar de forma remota:
Hay dos opciones:
git push origin: nombre de rama
git push origin --delete branchname
Le sugiero que utilice la segunda forma, ya que es más intuitiva.
|
Desde enero de 2013, GitHub incluyó un botón Eliminar rama junto a cada rama en su página "Ramas".
Publicación de blog relevante: crear y eliminar ramas
|
Si desea completar estos dos pasos con un solo comando, puede crear un alias agregando lo siguiente a su ~ / .gitconfig:
[alias]
rmbranch = "! f () {git branch -d $ {1} && git push origin --delete $ {1};}; f"
Alternativamente, puede agregar esto a su configuración global desde la línea de comando usando
git config --global alias.rmbranch \
'! f () {git branch -d $ {1} && git push origin --delete $ {1}; };F'
NOTA: Si usa -d (d minúscula), la rama solo se eliminará si se ha fusionado. Para forzar la eliminación, deberá usar -D (D mayúscula).
|
Para eliminar su sucursal de forma local y remota
Checkout to master branch - git checkout master
Elimine su rama remota - git push origin --delete 
Elimine su sucursal local - git branch --delete 
|
También puede hacer esto usando git remote prune origin
$ git origen de ciruela remota
Origen de la poda
URL: git@example.com/yourrepo.git
* [podado] origen / algunas-ramas
Poda y elimina las ramas de seguimiento remoto de una lista -r de rama de git.
|
Además de las otras respuestas, suelo utilizar la herramienta git_remote_branch. Es una instalación adicional, pero le brinda una forma conveniente de interactuar con sucursales remotas. En este caso, para eliminar:
grb eliminar rama
Encuentro que también utilizo los comandos de publicación y seguimiento con bastante frecuencia.
|
Un comando de una sola línea para eliminar tanto local como remoto:
D = nombre de la sucursal; git branch -D $ D; origen de git push: $ D
O agregue el alias a continuación a su ~ / .gitconfig. Uso: git kill branch-name
[alias]
kill = "! f () {git branch -D \" $ 1 \ "; git push origin --delete \" $ 1 \ ";}; f"
|
Eliminar ramas
Supongamos que nuestro trabajo en la rama "formulario de contacto" está terminado y que ya lo hemos integrado en "maestro". Como ya no lo necesitamos, podemos eliminarlo (localmente):
$ git branch -d formulario de contacto
Y para eliminar la rama remota:
git push origin --delete contact-form
|
Eliminar rama remota
origen de git push: 
Eliminar sucursal local
git branch -D 
Eliminar los pasos de la sucursal local:
pago a otra sucursal
eliminar sucursal local
|
Simplemente di:
git branch -d 
origen de git push: 
|
git push origin --delete 
es más fácil de recordar que
origen de git push: branchName
|
Ahora puedes hacerlo con la aplicación GitHub Desktop.
Después de iniciar la aplicación
Haga clic en el proyecto que contiene la rama
Cambie a la rama que le gustaría eliminar
En el menú "Rama", seleccione "Anular publicación ...", para eliminar la rama de los servidores de GitHub.
En el menú "Rama", seleccione "Eliminar" nombre_de_ rama "..." para eliminar la rama de su máquina local (también conocida como la máquina en la que está trabajando actualmente)
|
Para eliminar localmente - (normal)
git branch -d my_branch
Si su rama está en un progreso de rebase / fusión y no se hizo correctamente, significa que obtendrá un error, Rebase / Merge en progreso, por lo que en ese caso, no podrá eliminar su rama.
Entonces, o debe resolver el rebase / fusionar. De lo contrario, puede forzar la eliminación usando,
git branch -D my_branch
Para eliminar en remoto:
git push --delete origin my_branch
Puedes hacer lo mismo usando:
git push origin: my_branch # Fácil de recordar, ambos harán lo mismo.
Representación grafica:
|
Esto no funcionará si tiene una etiqueta con el mismo nombre que la rama en el control remoto:
$ git push origin: nombre-rama-o-etiqueta
error: dst refspec branch-or-tag-name coincide con más de uno.
error: no se pudieron enviar algunas referencias a 'git@github.com: SomeName / some-repo.git'
En ese caso, debe especificar que desea eliminar la rama, no la etiqueta:
origen de git push: refs / heads / branch-or-tag-name
De manera similar, para eliminar la etiqueta en lugar de la rama, usaría:
origen de git push: refs / tags / branch-or-tag-name
|
Muchas de las otras respuestas darán lugar a errores / advertencias. Este enfoque es relativamente infalible, aunque es posible que aún necesite git branch -D branch_to_delete si no está completamente combinado en some_other_branch, por ejemplo.
git checkout some_other_branch
origen de git push: branch_to_delete
git branch -d branch_to_delete
La poda remota no es necesaria si eliminó la rama remota. Solo se usa para obtener los controles remotos más actualizados disponibles en un repositorio que está rastreando. He observado que git fetch agregará controles remotos, no los eliminará. Aquí hay un ejemplo de cuándo git remote prune origin realmente hará algo:
Usuario Arealiza los pasos anteriores. El usuario B ejecutaría los siguientes comandos para ver las ramas remotas más actualizadas:
git fetch
origen de ciruela remota git
git branch -r
|
Me cansé de buscar en Google esta respuesta, así que tomé un enfoque similar a la respuesta que crizCraig publicó anteriormente.
Agregué lo siguiente a mi perfil de Bash:
function gitdelete () {
git push origin - eliminar $ 1
rama git -D $ 1
}
Luego, cada vez que termino con una rama (fusionada con la maestra, por ejemplo) ejecuto lo siguiente en mi terminal:
gitdelete my-branch-name
... que luego borra my-branch-name del origen y también localmente.
|
Antes de ejecutar
git branch --delete 
asegúrese de determinar primero cuál es el nombre exacto de la rama remota ejecutando:
git ls-remote
Esto le dirá qué ingresar exactamente para el valor . (¡la rama distingue entre mayúsculas y minúsculas!)
|
Utilizar:
git push origin: bugfix # Elimina la rama remota
git branch -d bugfix # Debe eliminar la rama local manualmente
Si está seguro de que desea eliminarlo, ejecute
git branch -D corrección de errores
Ahora para limpiar las ramas remotas eliminadas, ejecute
origen de ciruela remota git
|
1
2
Siguiente
Pregunta muy activa. Gana 10 de reputación para responder a esta pregunta. El requisito de reputación ayuda a proteger esta pregunta del spam y de la actividad sin respuesta.
No es la respuesta que estás buscando? Lea otras preguntas en las etiquetas git version-control git-branch git-push git-remote o formule su propia pregunta.